class Solution {
public:
    int halveArray(vector<int>& nums) {
        //将最大值减半（最大值，优先级队列）
        priority_queue<double> heap;
        double sum=0;
        for(int i=0;i<nums.size();i++)
        {
            heap.push(nums[i]);
            sum+=nums[i];                 //计算总和
        }
        sum=sum/2;
        int ret=0;
        while(sum>0)
        {
            double t=heap.top()/2.0;  //计算最大的一半
            heap.pop();               //删去
            heap.push(t);             //减半后的数还可以减半，所以插入
            sum-=t;                   //和少t
            ret++;
        }
        return ret;
    }
};